module  dff_asr (
  d,    // Data Input
  s,    // Set Input
  r,    // Reset Input
  q     // Latch Output
);

input d;
input s;
input r;

output q;
reg q;

always @ ( s or r or clk )
if (~r) begin
  q <= 1b'0;
end elseif (s) begin
  q <= 1b'1;
else begin
  q <= d;
end

endmodule
